As digital media technology improves and the price of storage decreases, users increasingly host collections of digital media (for example, audio, video, images, graphics, and like) on their personal computers and/or network-based data storage services. But users often desire for their digital media collections to be portable. More and more, users seek to transfer all or some of their collections to portable devices. Examples of portable devices include but are not limited to personal media players, personal digital assistants, phones, portable computers, in-vehicle devices, and other devices.
With the advent of relatively high-capacity storage on portable devices, users can store large quantities of media content on their portable devices. The process of transferring media files between a host computer and a portable device is termed synchronization. For example, the media transfer protocol (MTP) may be combined with the AutoSync® functionality of Windows Media Player® to accomplish synchronization.
Synchronization is often performed using a wired connection between a portable device and a host computer. For example, in the most common implementation of MP3 players and other related digital media playback devices, the content is placed on the device using a wired USB or “Firewire” IEEE 1394 cable. Certain devices have also implemented wireless data transfer methods using 802.11 “WiFi” connections or Bluetooth. For example, some portable devices allow wireless communication between multiple portable devices or between the device and a web-based service.
Some transport techniques used in synchronization, e.g., USB, have optimized modes for transferring in bulk. Sending multiple files of arbitrary, e.g., non-aligned, size causes inefficiency because of, e.g., partially-filled blocks. Inefficiencies also arise because multiple switches in protocol, from bulk to non-bulk and vice-versa, require multiple commands to be sent, indicating that a new file and accompanying metadata are being sent. In addition, using ordinary compression algorithms on bulk files may be disadvantageous since the recipient generally cannot interpret the data until all of the data is received, and in the case of a disconnection, the transferred data cannot be used and in general the file must be re-sent.